package org.sam.swing.table.verification;

/**
 * 输入必须小于最大值校验
 * 
 * @author sam
 *
 */
public class MaxVerificatior extends AbstractVerificatior {

	/**
	 * 最大值 阈值
	 */
	private Long maxValue = Long.MAX_VALUE;

	/**
	 * 最大值 阈值
	 * 
	 * @return
	 */
	public long getMaxValue() {
		return maxValue.longValue();
	}

	/**
	 * 最大值 阈值
	 * 
	 * @param minValue
	 */
	public void setMaxValue(long maxValue) {
		this.maxValue = Long.valueOf(maxValue);
	}

	/**
	 * 输入必须小于最大值校验
	 * 
	 * @param max
	 *            最大值
	 */
	public MaxVerificatior(long max) {
		super("输入必须为小于" + max);
		this.setMaxValue(max);
	}

	/**
	 * 输入必须小于最大值校验
	 * 
	 * @param max
	 * @param message
	 */
	public MaxVerificatior(long max, String message) {
		super(message);
		this.setMaxValue(max);
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public boolean verificat(Object value) {
		if (value == null)
			return false;

		if (value instanceof Number) {
			return ((Number) value).doubleValue() <= this.maxValue.doubleValue();
		}

		return false;
	}

}
